Wireless telecommunication coverage has become nearly ubiquitous in much of the world, especially in industrialized countries. In some developing countries as well, whole regions that lack traditional copper-wired telecom infrastructure have skipped over that technology to deploy wireless instead. Modern wireless networks provide a range of voice and data services. Technical details of those services can be found in many places, for example, the 3GPP standards group web site www.3gpp.org.
Some wireless data services, however, are slow, and coverage is spotty. “SMS” (short message service) is one example. Wireless voice services, by contrast, tend to be of generally good quality and are available almost everywhere people travel. Therefore, voice services are a good choice where reliable, broad coverage is important, for example in the implementation of emergency services, such as requests for police, fire, medical or other emergency services. When people are traveling, especially in motor vehicles, effective wireless communication to reach emergency services is essential.
We refer to “in-band” communications as meaning in the voice channel, as distinguished from a data channel, control channel or other non-voice wireless service Importantly, voice channels, although optimized for efficient transmission of actual human voice traffic, in fact can be used to transmit relatively small amounts of data as well (e.g., tens or hundreds of bits, rather than megabits.) Voice channels are characterized by special performance characteristics. For example, only a relatively narrow range of audio frequencies needs to be transceived, based on the normal human voice. In fact, sophisticated compression and coding techniques are known to enable sending and receiving human voice very efficiently over digital wireless networks. However, these voice coders or “vocoders”—typically implemented in software, DSP chips and the like—do not transmit non-voice sounds well at all. To the contrary, they are carefully designed to filter out non-voice signals.
FIG. 1 is a simplified block diagram illustrating the typical speech path for a wireless voice call; i.e., a telephone call over the wireless telecommunications network. Analog voice signals from a microphone are digitized by an A/D converter, and then fed to a vocoder encoding algorithm (at 8000 samples/sec). The encoder produces packets of compressed data (typically one packet per 20-ms frame of audio) and feeds this data stream to a radio transceiver. On the other side, a radio receiver passes the packets to the decoding algorithm, which then reconstructs (imperfectly) the original voice signal as a PCM stream. This PCM stream is eventually converted back into an analog voltage which is then applied to a speaker.
Using this type of system, modest amounts of data (here we mean user data, not vocoder speech data) can be transmitted “in-band” through careful selection of frequencies, timing, and the use of special techniques that “trick” a vocoder into transmitting information by making that information “look like” human voice data. This type of data communication, using the voice channel of a wireless system, is sometimes called “in-band signaling.” It can be implemented in hardware and or software referred to as an “in-band signaling modem,” borrowing the old modem term (modulator-demodulator) familiar in traditional “land line” telecommunications.
Several issued patents disclose in-band signaling technology that communicates digital data over a voice channel of a wireless telecommunications network. In one example, an input receives digital data. An encoder converts the digital data into audio tones that synthesize frequency characteristics of human speech. The digital data is also encoded to prevent voice encoding circuitry in the telecommunications network from corrupting the synthesized audio tones representing the digital data. An output then outputs the synthesized audio tones to a voice channel of a digital wireless telecommunications network. In some cases, the data carrying “tones” are sent along with simultaneous voice. The tones can be made short and relatively unobtrusive. In other implementations, sometimes called “blank and burst,” the voice is cut off while data is transmitted through the voice channel. In still other implementations, portions of the audio frequency spectrum are used for voice, while other portions are reserved for data. This aides in decoding at the receiving side.
Today, many vehicles have some capability for communications over a wireless network. We refer to these vehicle systems as a telematics client system. FIG. 2 is a simplified block diagram of an illustrative In-Vehicle System (IVS). It shows an example of the relevant portion of a typical telematics client system. This client system consists of embedded hardware and software designed to operate in an automobile environment.
In FIG. 2, the telematics software includes a “customer application,” which may be almost any application, in particular one that employs data transfer via the wireless network. For example, the customer application may relate to navigation or entertainment. In operation, the customer application conveys data (preferably data packets) to an in-band signaling modem. The in-band modem converts the data (along with packet headers and other overhead as appropriate) into audio tones. The audio “data tones” are encoded, much like voice content, and transmitted to a remote receiver.
As in any communication system, errors can occur in the process of in-band signaling. For example, the receiver will attempt to recover data packets from the transmitted data tones, but the recovery process could fail or the recovered packets could be incorrect representations of the original packets. Although there are schemes available to conduct a re-transmission from the transmit side in the event of an error, as well as schemes to correct errors on the receive side, what is needed is a scheme to reduce the number of errors to be resolved by the re-transmission and/or error correction schemes. The disclosure that follows solves this and other problems.